14장. EC2 스토리지 구성 이해하기
이 장에서 말하고자 하는 것
EC2 인스턴스를 생성할 때 우리는 다음을 선택한다.
- 인스턴스 타입 (CPU, 메모리)
- 스토리지
많은 경우 CPU와 메모리에 집중하지만,
실제 운영 환경에서는 디스크 성능이 병목이 되는 경우가 많다.
스토리지를 이해하는 것은
안정적인 서비스 운영을 위한 중요한 요소다.
1. 서버에서 스토리지는 어떤 역할을 하는가
서버의 디스크에는 다음이 저장된다.
- 운영체제
- 애플리케이션 코드
- 로그 파일
- 업로드 파일
- 데이터베이스 데이터
즉, 서버의 모든 데이터는 결국 디스크에 기록된다.
CPU가 빠르더라도
디스크에서 데이터를 읽고 쓰는 속도가 느리면
전체 응답 속도가 느려질 수 있다.
2. 디스크 성능을 판단하는 두 가지 기준
스토리지 성능은 주로 두 가지 수치로 표현된다.
① IOPS
IOPS는
초당 처리 가능한 읽기/쓰기 작업 횟수
를 의미한다.
예:
- IOPS 3,000 → 1초에 3,000번 입출력 작업 가능
- IOPS 16,000 → 더 많은 요청을 처리 가능
작은 데이터를 자주 읽고 쓰는 환경에서 중요하다.
예:
- 사용자 정보 조회
- 게시글 조회
- 주문 처리
② Throughput
Throughput은
초당 전송 가능한 데이터 양 (MiB/s)
을 의미한다.
예:
- 250 MiB/s
- 1,000 MiB/s
큰 파일을 다루는 환경에서 중요하다.
예:
- 대용량 파일 업로드
- 백업 작업
- 로그 파일 처리
IOPS와 Throughput의 차이
- IOPS → 작업 “횟수”
- Throughput → 데이터 “양”
서비스 특성에 따라
어떤 수치가 더 중요한지 달라진다.
3. EC2에서 사용하는 스토리지 종류
EC2에서 주로 사용하는 스토리지는 두 가지다.
① EBS (Elastic Block Store)
- 네트워크 기반 블록 스토리지
- 인스턴스와 분리 가능
- 스냅샷 지원
- 가장 일반적으로 사용됨
대부분의 운영 서버는 EBS를 사용한다.
② Instance Store
- 물리 서버에 직접 연결된 로컬 디스크
- 매우 빠른 I/O 성능
- 인스턴스 종료 시 데이터 삭제
임시 데이터나 캐시 용도로 사용된다.
4. EBS 볼륨 타입별 성능 비교
주요 EBS 타입의 공식 최대 성능은 다음과 같다.
| EBS 볼륨 타입 | IOPS (최대) | Throughput (최대) | 특징 |
|---|---|---|---|
| gp3 | 최대 16,000 | 최대 1,000 MiB/s | 범용 SSD, 기본 선택 |
| io2 | 최대 256,000 | 최대 4,000 MiB/s | 고성능 SSD |
| st1 | 최대 500 | 최대 500 MiB/s | HDD, 대용량 순차 작업 |
| sc1 | 최대 250 | 최대 250 MiB/s | 저렴한 HDD, 장기 보관 |
공식 성능 수치는 AWS 문서에서 확인 가능합니다: EBS 볼륨 성능 비교 표 (AWS)
5. 각 볼륨 타입의 특징
gp3 (범용 SSD)
- 기본 IOPS 3,000
- IOPS와 Throughput을 독립적으로 조정 가능
- 비용 대비 성능 우수
일반적인 웹 서비스나 API 서버에 적합하다.
io2 (Provisioned IOPS SSD)
- 매우 높은 IOPS 지원
- 지연 시간이 낮음
- 비용이 높음
대규모 데이터베이스나
고성능이 필수인 환경에 적합하다.
st1
- HDD 기반
- 순차 읽기/쓰기에 적합
- IOPS는 낮음
대용량 로그 처리나 분석용 저장소에 적합하다.
sc1
- 가장 저렴한 HDD
- 접근 빈도가 낮은 데이터에 적합
백업이나 장기 보관용 데이터에 사용된다.
6. 스토리지 때문에 발생하는 성능 차이
다음과 같은 상황이 있을 수 있다.
- CPU 사용률은 낮다.
- 메모리도 충분하다.
- 그런데 서비스 응답이 느리다.
이 경우 디스크 성능이 부족할 가능성이 있다.
특히 데이터베이스는
디스크 성능에 직접적인 영향을 받는다.
7. 운영체제 디스크와 데이터 디스크 분리
EC2 인스턴스를 생성하면
운영체제가 설치되는 기본 디스크가 생성된다.
이 디스크에는:
- 운영체제
- 애플리케이션
- 데이터
를 모두 저장할 수 있다.
그러나 운영 환경에서는 보통 분리한다.
- 디스크 1 → 운영체제 전용
- 디스크 2 → 데이터 전용
이렇게 분리하면:
- 운영체제 문제 발생 시 데이터 보호 가능
- 데이터 디스크만 확장 가능
- 백업 및 복구 전략 수립이 용이
8. 스토리지와 인스턴스의 관계
EBS는 네트워크를 통해 인스턴스와 연결된다.
따라서 인스턴스 타입에 따라:
- 최대 EBS 대역폭
- 처리 가능한 I/O 한계
가 존재한다.
즉,
스토리지 성능은 디스크 타입뿐 아니라
인스턴스 사양과도 연결되어 있다.
서버 설계는 항상 전체 균형을 고려해야 한다.
9. 스토리지 선택 전략
- 일반적인 서비스는 gp3로 시작한다.
- 실제 모니터링을 통해 디스크 사용량과 I/O를 확인한다.
- 필요 시 IOPS를 조정한다.
- 고성능이 필요한 경우에만 io2를 고려한다.
클라우드는
초기에 과도한 사양을 선택할 필요가 없다.
10. 이 장의 핵심 정리
- 디스크는 서버 성능에 큰 영향을 준다.
- IOPS는 작업 횟수, Throughput은 데이터 전송량이다.
- gp3는 대부분의 환경에서 적합하다.
- io2는 고성능이 필요한 경우에 사용한다.
- 운영체제와 데이터 디스크를 분리하면 관리가 용이하다.
- 스토리지 성능은 인스턴스 사양과도 연결되어 있다.